package cn.sunline.dreamvalue.service;

import cn.sunline.dreamvalue.dto.DreamValueDetailInDTO;
import cn.sunline.dreamvalue.dto.DreamValueDetailOutDTO;
import cn.sunline.dreamvalue.dto.DreamAcctOpenDTO;
import cn.sunline.dreamvalue.dto.DreamValueTaskOutDTO;
import cn.sunline.dreamvalue.entity.CustDreamValFlow;

import java.io.IOException;
import java.util.Map;

/**
 * @author 11292
 * @title: HbaseSevice
 * @projectName dream-value
 * @description: TODO hbase操作封装
 * @date 2020/5/1123:00
 */
public interface HbaseService {


    /**
     * 查询梦想值证件号映射关系
     * @param certNo
     * @return
     */
    public Map<String,String> queryCertNoRel(String certNo) throws IOException;

    /**
     * 查询梦想值客户号映射关系
     * @param customerId
     * @return
     */
    public Map<String,String> queryCustomerIdRel(String customerId) throws IOException;

    /**
     * 插入证件号映射表
     * @param certNo
     * @param customerId
     * @param dreamAcctNo
     * @return
     */
    public Boolean insertCertNoRel(String certNo,String customerId,String dreamAcctNo) throws IOException;

    /**
     * 插入客户号映射表
     * @param customerId
     * @param certNo
     * @param dreamAcctNo
     * @return
     */
    public Boolean insertCustomerIdRel(String customerId,String certNo,String dreamAcctNo) throws IOException;

    /**
     * 插入客户梦想账户表
     * @param dreamAcctNo
     * @param isStartUp
     * @param date
     * @param time
     * @return
     */
    public Boolean insertCustDreamAcct(String dreamAcctNo,String isStartUp,String date,String time) throws IOException;

    /**
     * 删除客户号映射关系
     * @param customerNo
     */
    public void deleteCustomerIdRel(String customerNo) throws IOException;

    /**
     * 删除证件号映射
     * @param certNo
     */
    public void deleteCertNoRel(String certNo) throws IOException;

    /**
     * 查询梦想账户
     * @param dreamValueNo
     * @return
     */
    Map<String, String> queryDreamAcct(String dreamValueNo) throws IOException;

    /**
     * 查询梦想值流水
     * @param input
     * @return
     */
    DreamValueDetailOutDTO queryDreamValFlow(DreamValueDetailInDTO input) throws Exception;

    /**
     * 插入梦想值流水记录表
     * @param flow
     * @return
     */
    public Boolean  insertCustDreamValFlow(CustDreamValFlow flow) throws IOException;

    /**
     * 查询客户完成进度
     * @param input
     * @return
     */
    DreamValueTaskOutDTO querySchedule(DreamAcctOpenDTO input) throws Exception;
}
